-- 1. 参数列表
-- 1.1 部落id
local cid = ARGV[1]
-- 1.2 村庄id
local vid = ARGV[2]
-- 1.3 玩家id
local uid = ARGV[3]

-- 2. 数据key
-- 2.1 库存key
local sk = "entry:stock:" .. cid
-- 2.2 参战key
local fk = "entry:fight:" .. cid

-- 3. 脚本业务
-- 3.1 判断人员是否充足 get sk
if (tonumber(redis.call("GET", sk)) == nil or tonumber(redis.call("GET", sk)) < 1) then
    -- 库存不足，返回1
    return 1
end
-- 3.2 判断是否参战中 SISMEMBER fk
if (redis.call("sismember", fk, vid) == 1) then
    -- 已经参战中，返回2
    return 2
end
-- 3.3 减少库存，增加参战 incrby sk -1
redis.call("incrby", sk, -1)
-- 3.4 添加参战，返回0
redis.call("sadd", fk, vid)
return 0
